﻿@model IEnumerable<ModuleBase>
@{ PageTitle.AddViewTitle("Модули"); }

@using (Html.BeginForm("Apply", null, FormMethod.Post))
{
	if (Model.Count() > 15)
	{
		<div class="form-buttons">
			<input type="submit" value="Применить изменения" />
		</div>
	}
	
	<table class="tbl" style="width:100%">
		<tr>
			<th>Включен</th>
			<th>Модуль</th>
			<th>Состояние</th>
			<th>Зависимости</th>
		</tr>
		@foreach (ModuleBase m in Model.OrderBy(r => r.Name))
		{
			object attrs = null;
			if (m.IsAlwaysEnabled)
			{
				attrs = new { disabled = "disabled" };
			}
			<tr>
				<td class="min center">@Html.CheckBox(m.Name + ".IsEnabled", m.IsEnabled, attrs)</td>
				<td><a href="@Url.Action("Item", new { name = m.Name })" title="Подробная информация">@m.Name</a></td>
				<td>
					@if (!m.IsEnabled)
					{
						<text>Выключен</text>
					}
					else
					{
						switch (m.State)
						{
							case ModuleState.NotRegistered:
								<text>Включен, не зарегистрирован</text>
								break;
							case ModuleState.Registered:
								<text>Работает</text>
								break;
							case ModuleState.Error:
								<text>Включен, ошибка: @m.RegistrationError.Message</text>
								break;
						}
					}
				</td>
				<td>@m.GetDependencyModules().Merge(", ")</td>
			</tr>
	}
	</table>

	<div class="form-buttons">
		<input type="submit" value="Применить изменения" />
	</div>
}